home *** CD-ROM | disk | FTP | other *** search
/ Mission 3 / Mission 3.zip / Mission 3.iso / zugabe / va45 / visual45 / objects / form / radio_bt.s < prev    next >
Text File  |  1998-08-17  |  3KB  |  92 lines

  1.     DATA
  2.  
  3. GWVA_FRADIO_BUTTON_DEFAULT_METHODLIST:
  4.     GWVA_OBJ_STRUCT_METHOD    GWVA_METHOD_FORM_CLICK,GWVA_FRADIO_BUTTON_PRG_CLICK
  5.     GWVA_OBJ_STRUCT_METHOD_END_LIST
  6.  
  7.     TEXT
  8. ;------------------------------------------------------------------------------
  9. ; Method name : GWVA_METHOD_FORM_CLICK
  10. ; Asm label   : GWVA_FRADIO_BUTTON_PRG_CLICK
  11. ; Description : Méthode de traitement d'un clic sur un radio bouton
  12. ;
  13. ; in  : a0.l = pointeur sur l'objet
  14. ; in  : a1.l = pointeur sur le buffer d'entrée typé GWVA_FORM_CLICK_IN
  15. ; in  : d0.l = [ X.w | num gem.w ]
  16. ; in  : d1.l = [ Y.w | mouse button.w ]
  17. ; in  : d2.l = [ Key state.w | mouse count.w ]
  18. ; out : d6.w = GWVA_PRGRET_NOT_CONSUMED ou GWVA_PRGRET_CONSUMED
  19. ;
  20. ; 04/04/98 : Création
  21. ;------------------------------------------------------------------------------
  22.  
  23. GWVA_FRADIO_BUTTON_PRG_CLICK:
  24.  
  25.     GWVA_EXEC_VISUAL_EVENT    #GWVA_METHOD_ON_FORM_CLICK
  26.     cmp.w #GWVA_SEARCH_EXEC_CONSUMED,d6
  27.     beq .pas_click_car_on_click_consomme    ; je ne suis pas concerné
  28.  
  29.     ;-----------------------------------;
  30.  
  31.     move.w GWVA_FORM_CLICK_IN_FATHER_IDX(a1),d7
  32.     cmp.w GWVA_FRADIO_OBJ_FATHER_IDX(a0),d7
  33.     bne .ce_n_est_pas_mon_pere
  34.  
  35.     lea FRADIO_TMP_IN_BUF,a3
  36.     move.l GWVA_FORM_CLICK_IN_WIND_PTR(a1),GWVA_FORM_BUTTON_IN_WIND_PTR(a3)
  37.     move.l GWVA_FORM_CLICK_IN_TREE_PTR(a1),GWVA_FORM_BUTTON_IN_TREE_PTR(a3)
  38.  
  39.     save.l a1            ; seul ce paramètre bouge
  40.  
  41.     move.l a3,a1
  42.     lea FBUTTON_TMP_OUT_BUF,a2
  43.  
  44.     GWVA_CALL_METHOD_DIFF_METH_SAME_CLASS    #GWVA_METHOD_FORM_BUTTON
  45.  
  46. *    move.w GWVA_FORM_BUTTON_OUT_NEW_STATE(a2),d3
  47. *    move.w GWVA_FORM_BUTTON_OUT_NEW_TYPE(a2),d4
  48. *    move.w GWVA_FORM_BUTTON_OUT_OLD_STATE(a2),d5
  49.     move.w GWVA_FORM_BUTTON_OUT_RET_CODE(a2),d6
  50.  
  51.     load.l a1            ; seul ce paramètre bouge
  52.  
  53.     ; pas d'after donc on peut scratcher les params d'entrée
  54.     ; on positionne a1/a2, car ils servent pour tous les évènements
  55.     move.l GWVA_FORM_CLICK_IN_TREE_PTR(a1),a2    ; tant que a1 est bon
  56.     move.l GWVA_FORM_CLICK_IN_WIND_PTR(a1),a1
  57.  
  58.     ;-----------------------------------;
  59.  
  60.     ; émettre changed ...
  61.  
  62. *    tst d6            ; pour un radio : on s'en moque bien
  63. *    bne .propriete_exit_non_activee    : car ils sont rarement exit
  64.  
  65.     cmp.w GWVA_FRADIO_OBJ_SELECTION(a0),d0
  66.     beq.s .selection_inchangee
  67.  
  68.     ; Attention : positionner les paramètres d'entrée + sauver les courants
  69.     ; ! on ne prépare pas les paramètres comme il faut pour le moment !
  70.  
  71.     move.w GWVA_FRADIO_OBJ_SELECTION(a0),d1    ; avant de l'écraser
  72.  
  73.     move.w d0,GWVA_FRADIO_OBJ_SELECTION(a0)    ; nouvelle
  74.  
  75.     GWVA_EXEC_VISUAL_EVENT    #GWVA_METHOD_FORM_CHANGED
  76.  
  77.  
  78. .selection_inchangee:
  79.  
  80. .pas_click_car_on_click_consomme:
  81.     moveq #GWVA_PRGRET_CONSUMED,d6
  82.     rts
  83.  
  84. .ce_n_est_pas_mon_pere:
  85.     moveq #GWVA_PRGRET_NOT_CONSUMED,d6
  86.     rts
  87.  
  88.  BSS
  89. FRADIO_TMP_IN_BUF:    ds.b GWVA_FORM_BUTTON_IN_STRUCT_LENGTH
  90. FRADIO_TMP_OUT_BUF:    ds.b GWVA_FORM_BUTTON_OUT_STRUCT_LENGTH
  91.  TEXT
  92.